home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 235
/
235.d81
/
tomb of horror
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
18KB
|
438 lines
1 ifx=.thenx=1:d=peek(186):load"tomb.obj",d,1
2 poke56,144:poke55,0:clr
3 poke53280,.:poke53281,.:x=rnd(-ti):forx=901to970:reada:pokex,a:next
4 forx=828to839:reada:pokex,a:next:forx=679to753:reada:pokex,a:next:goto79
5 d=rnd(u)*g:pokes+k,u(d):pokes+7,v(d):pokes+g,u(d+k+f):pokes+g-u,v(d+k+f)
6 return
7 vl=fc:onfc+ugosub45,45,46,47,48
8 return
9 onfc+ugosub50,51,52,53:return
10 onfc+ugosub54,55,56:return
11 print"[144] + / ";
12 print" [146][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160] ";
13 print" [146][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160] ";
14 print" [146][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160] ";
15 print" [146][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160] ";
16 print" [146][160][160][160][160]"z$"([144] "z$")[144][146][160][160][160][160] ";
17 print" [146][160][160][160][160][160]"z$"([144]========================"z$")[144][160][146][160][160][160][160] ";
18 print" [146][160][160][160][160][160][160] + / [160][160][146][160][160][160][160] ";
19 print" [146][160][160][160][160][160][160] [146][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160] [160][160][146][160][160][160][160] ";
20 print" [146][160][160][160][160][160][160] [146][160][160]"z$"([144]=============="z$")[144][146][160][160] [160][160][146][160][160][160][160] ";
21 print" [146][160][160][160][160][160][160] [146][160][160][160]+ /[160][146][160][160] [160][160][146][160][160][160][160] ";
22 print" [146][160][160][160][160][160][160] [146][160][160][160] [146][160][160][160][160][160][160][160][160][160][160][160][160] [160][146][160][160] [160][160][146][160][160][160][160] ";
23 print" [146][160][160][160][160][160][160] [146][160][160][160] [146][160]"z$"([144]========"z$")[144][146][160] [160][146][160][160] [160][160][146][160][160][160][160] ";
24 print" [146][160][160][160][160][160][160] [146][160][160][160] [146][160][160] "z$"[146][166][173][173][173][173][192][144] [160][146][160] [160][146][160][160] [160][160][146][160][160][160][160] ";
25 print" [146][160][160][160][160][160][160] [146][160][160][160] [146][160][160] "z$"[146][255][144] "z$"[146][223][144] [160][146][160] [160][146][160][160] [160][160][146][160][160][160][160] ";
26 print" [146][160][160][160][160][160][160] [146][160][160][160] [146][160][160] "z$"[146][255][144] "z$"[146][223][144] [160][146][160] [160][146][160][160] [160][160][146][160][160][160][160] ";
27 print" [146][160][160][160][160][160][160] [146][160][160][160] [146][160]"z$"<[144] "z$">[144][146][160] [160][146][160][160] [160][160][146][160][160][160][160] ";
28 print" [146][160][160][160][160][160][160] [146][160][160][160]/ +[160][146][160][160] [160][160][146][160][160][160][160] ";
29 print" [146][160][160][160][160][160][160] [146][160][160]"z$"<[144] "z$">[144][146][160][160] [160][160][146][160][160][160][160] ";
30 print" [146][160][160][160][160][160][160] / + [160][160][146][160][160][160][160] ";
31 print" [146][160][160][160][160][160][160]/ +[160][160][146][160][160][160][160] ";
32 print" [146][160][160][160][160][160]"z$"<[144] "z$">[144][160][146][160][160][160][160] ";
33 print" [146][160][160][160][160]"z$"<[144] "z$">[144][146][160][160][160][160] ";
34 print" / + ";
35 printd$b$d$i$(dl(cl,t))tab(g+h)""d$(cd*-(cu=g))"[150]";
36 printtab(39-len(t$(dl(cl,u))))t$(dl(cl,u));:sysrl:return
37 print"[146] ":forx=.to20:print" ":next:return
38 print"[146]":forx=.to10:printtab(8)" ":next:return
39 print"[146]";tab(13)" [157]";:forx=.tof:print" [157]";:next:return
40 print"";tab(16)" [157] [157] ":return
41 print"[146]":forx=.to21:printtab(39)chr$(20)chr$(32):next:return
42 print"[146]":forx=.to10:printtab(30)" ":next:return
43 print"":forx=.to5:printtab(26)" ":next:return
44 print"[146]";tab(23)" [157] [157] ":return
45 print"[146]";:forx=.to17:printtab(6)w1$:next:return
46 print"[146]";:forx=.to9:printtab(12)w2$:next:return
47 print"[146]";:forx=.to5:printtab(15)w3$:next:return
48 print"[146]";:forx=.tot:printtab(17)w4$:next:return
49 return
50 print""tab(13)s1$;:return
51 print""tab(15)s2$;:return
52 print""tab(17)s3$;:return
53 print""tab(18)s4$;:return
54 print""tab(13)e1$:return
55 print""tab(15)e2$:return
56 print""tab(17)e3$:return
57 if(dl(cl,.)andb(f+h))=.then61
58 sb=peek(v+21):pokev+21,.:gosub273:gosub251:dl(cl,.)=(dl(cl,.)andg)
59 x=int(rnd(u)*10*(dl+u)):c$(1)="you take"+str$(x)+" hp damage!":aa=18:n=1
60 lf=lf-x:gosub257:gosub326:forx=.to2000:next:gosub288:pokev+21,sb
61 printd$tab(g+h)"move!";:cem=fnte(.):pokese,cem:gosub11:printz$;
62 fc=f:vl=fc:lv=cd-u+f*-(cd=u):rv=cd+u+f*(cd=f)
63 ebm=fncp(.):ifebm>.andebm<dethen65
64 fc=fc-u:on-(fc>-u)goto63:return
65 el=fncp(lv):er=fncp(rv):ifdl(ebm,.)then67
66 gosub7:fc=fc-u:onu-(fc<.)goto63,71
67 ifdl(el,.)andfc<fthenonfc+ugosub37,38,39,40
68 ifdl(er,.)andfc<fthenonfc+ugosub41,42,43,44
69 ford=.toh:if(dl(ebm,.)andb(d))thenondgosub9,10,7:printz$;
70 print"[146]";:next:fc=fc-u:iffc>-uthen63
71 gosub72:csm=fnsw(.):pokev+24,(peek(v+24)and15)orcsm:pokev+21,el:return
72 iffcandvlthenvl=vl-u
73 d=191:pokefnmp(u),d:pokefnmp(t),d:pokefnmp(h),d:pokefnmp(f+u),d
74 el=.:er=.:pokev+21,.:forx=vlto.step-u:fc=fncm(x):ifdl(fc,u)=.then78
75 fc=abs(dl(fc,u)-u):el=(elorsp(x+f))
76 mb=sp(x)-u:ford=utolen(sb$(x,fc)):pokefnmp(mb+d),asc(mid$(sb$(x,fc),d,u))
77 pokebc+sp(x)+d,cs(fc):next
78 next:sb=el:return
79 printchr$(147)chr$(8)chr$(142)"stand by....":gosub290:gosub298
80 dimdl(383,3),b(15),sp(7),sb$(3,12),d$(4),cs(12),l$(6),i(30),m(24),mh(24)
81 dimcm$(14),t$(13),i$(30),c$(30),c(30),m$(44),lv(2,2),cz$(2),h(8),sm$(8)
82 dimts(24),u(26),v(26)
83 fc=.:cl=17:cd=2:vl=.:el=.:er=.:vs=.:lf=20:m=.:w=.005:z=.94:wl=17
84 tl=388:tgl=16:csm=.:cem=192:de=383:v=53248:sb=.:rl=828:se=648:sr=679
85 u=1:t=2:h=3:f=4:k=8:g=15:joy=56320:dl=.:dm=.:ar=.:cu=.:we=.
86 s=54272:bc=v+38:ss=.:sc=.:cc=55296:sz=959:i=.
87 d(1)=1:d(2)=16:d(3)=-1:d(4)=-16
88 h(.)=1:h(1)=10:h(2)=2:h(3)=2:h(4)=1:h(5)=7:h(6)=3:h(7)=13:h(8)=5
89 sp(.)=.:sp(1)=4:sp(2)=6:sp(3)=7:sp(4)=15:sp(5)=48:sp(6)=64:sp(7)=128
90 d$(.)=" ? ":d$(1)="east ":d$(2)="south":d$(3)="west ":d$(4)="north"
91 sm$(.)="\\":forx=1to8:sm$(x)=chr$(32)+chr$(32):next:cr$=chr$(13)
92 forx=.to38:w$=w$+chr$(160):b$=b$+chr$(32):mb$=mb$+"*":next
93 d$="[155][146]":forx=.to23:d$=d$+"":next
94 w1$=left$(w$,28):w2$=left$(w$,16):w3$=left$(w$,10):w4$=left$(w$,6)
95 s1$="[144])"+left$(w$,12)+"(":s2$="[144])"+left$(w$,8)+"("
96 s3$="[144])"+left$(w$,4)+"(":s4$="[144])"+left$(w$,2)+"("
97 e1$="[144]>"+left$(w$,12)+"<":e2$="[144]>"+left$(w$,8)+"<"
98 e3$="[144]>"+left$(w$,4)+"<":cz$(.)="[151]":cz$(1)="":cz$(2)="[149]"
99 i$(.)=left$(b$,15):t$(.)=left$(b$,13)
100 def fncp(x)=fc*d(cd)+(cl+d(x)):def fnsw(x)=(tgl-csm)
101 def fnte(x)=(tl-cem):def fncm(x)=x*d(cd)+cl:def fnmp(x)=cem*256+1016+x
102 deffnj(x)=(g-(xandg)):deffnc(x)=(lf<k)*-t+(lf>kandlf<g)*-(f+h)
103 deffncd(x)=cd+(cd=f+u)*f+(cd=.)*-f:deffnjf(x)=((jyand(g+u))=.)
104 deffnh(a)=(ar+i(ar)*t+lf/k)
105 forx=.to15:b(x)=2^x:next
106 forx=.tode:readd:dl(x,.)=d:next:forx=.to15:reada:pokev+x,a:next
107 forx=1to13:read